/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ProcessosBasicos;

import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JLabel;

/**
 * Thread controladora de Horário
 *
 * @author Bruno
 */
public class ThreadHorario extends Thread {

    private static javax.swing.JLabel jLabel1;

    /**
     *
     * @param a jLabel contendo o horário
     */
    public ThreadHorario(javax.swing.JLabel a) {
        jLabel1 = a;
    }

    public void run() {
        AtualizadorHorario ah = new AtualizadorHorario(jLabel1);
        ah.mostrarData(true);
        ah.start();
    }
}

/**
 * Atualiza o label na janela inicial.
 *
 * @author Henrique
 */
class AtualizadorHorario extends Thread {

    private JLabel hr;
    private boolean mostrarData;

    /**
     *
     * @param hora - label que será atualizado
     */
    public AtualizadorHorario(JLabel hora) {
        this.hr = hora;
    }

    /**
     * Escolhe-se entre mostrar a data e o horario ou somente o horario.
     *
     * @param mostrar - boolean indicador.
     */
    public void mostrarData(boolean mostrar) {
        if (mostrar) {
            this.mostrarData = true;
        } else {
            this.mostrarData = false;
        }
    }

    @Override
    public void run() {
        try {
            while (true) {
                Date d = new Date();
                StringBuffer data = new StringBuffer();
                SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
                if (mostrarData) {
                    SimpleDateFormat sdfData = new SimpleDateFormat("dd/MM/yyyy");
                    data.append(sdfData.format(d));
                    data.append(" - ");
                }
                this.hr.setText(data.toString() + sdf.format(d));
                Thread.sleep(1000);
                this.hr.revalidate();
            }
        } catch (InterruptedException ex) {
            this.hr.setText("Problema na atualização da hora/data.");
            ex.printStackTrace();
        }
    }
}